package controllers

import (
	//	"encoding/json"
	//	"errors"
	"gitee.com/lzqysoft/ga_wz_backend/models"
	//	"strconv"
	//	"fmt"
	//	"sys/common/log"
	//	"strings"
	//	"time"
	//	"reflect"
	"github.com/astaxie/beego/orm"

	"github.com/astaxie/beego"
)

// oprations for Statistics
type StatisticsController struct {
	CommonController
}

func (c *StatisticsController) URLMapping() {
	c.Mapping("StatisticsUser", c.StatisticsUser)
	c.Mapping("StatisticsVideo", c.StatisticsVideo)
	c.Mapping("StatisticsOrgs", c.StatisticsOrgs)
	c.Mapping("StatisticsStore", c.StatisticsStore)
	c.Mapping("StatisticsLive", c.StatisticsLive)
	c.Mapping("StatisticsDepts", c.StatisticsDepts)
}

// @Title StatisticsUser
// @Description 人员登录及观看统计
// @Success 200
// @Failure 403 :
// @router /StatisticsUser [get]
func (c *StatisticsController) StatisticsUser() {
	user := c.User
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	switch user.Role[0].Type {
	case 0:
		datas, err = models.StaticUser()
	case 1:
		datas, err = models.StaticUser()
	case 2:
		datas, err = models.StaticUserByOrgId(user)
	case 3:
		datas, err = models.StaticUserByDept(user)

	}
	//	beego.Debug(err)
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)

}

// @Title StatisticsVideo
// @Description 视频观看统计
// @Success StatisticsVideo success!
// @Failure
// @router /StatisticsVideo [get]
func (c *StatisticsController) StatisticsVideo() {
	user := c.User
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	switch user.Role[0].Type {
	case 0:
		datas, err = models.StaticVideo()
	case 1:
		datas, err = models.StaticVideo()
	case 2:
		datas, err = models.StaticVideoByOrgId(user)
	case 3:
		datas, err = models.StaticVideoByDept(user)
	}
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)
}

// @Title StatisticsLive
// @Description 视频观看统计
// @Success StatisticsLive success!
// @Failure
// @router /StatisticsLive [get]
func (c *StatisticsController) StatisticsLive() {
	user := c.User
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	switch user.Role[0].Type {
	case 0:
		datas, err = models.StaticLive()
	case 1:
		datas, err = models.StaticLive()
	case 2:
		datas, err = models.StaticLiveByOrgId(user)
	case 3:
		datas, err = models.StaticLiveByDept(user)

	}
	beego.Debug(err)
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)
}

// @Title StatisticsOrgs
// @Description 单位统计
// @Success 200
// @Failure 403
// @router /StatisticsOrgs [get]
func (c *StatisticsController) StatisticsOrgs() {
	//	user := c.user
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	//	if user.Role[0].Id > 2 {
	//		datas, err = models.StaticOrgByOrg(user.Organization.Id)
	//	} else {
	datas, err = models.StaticOrg()
	//	}
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)

}

// @Title StatisticsDepts
// @Description 部门统计
// @Success 200
// @Failure 403
// @router /StatisticsDepts [get]
func (c *StatisticsController) StatisticsDepts() {
	user := c.User
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	//	if user.Role[0].Id > 2 {
	//		datas, err = models.StaticOrgByOrg(user.Organization.Id)
	//	} else {
	datas, err = models.StaticDept(user)
	//	}
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)
}

// @Title StatisticsStore
// @Description 存储空间统计
// @Success 200
// @Failure 403
// @router /StatisticsStore [get]
func (c *StatisticsController) StatisticsStore() {
	// user := c.user
	//	role, err := models.GetRoleByUserId(user.Id)
	//用户角色不是系统管理员的筛选单位
	var datas []orm.Params
	var err error
	//	if user.Role[0].Id > 2 {
	//		datas, err = models.StaticOrgByOrg(user.Organization.Id)
	//	} else {
	datas, err = models.StaticUsedDiskAll()
	//	}
	if err != nil {
		c.RetError(ErrNoData)
	}
	c.RetSuccess(datas)
}
